Package de.yaams.extensions.rgssproject

Source Code of de.yaams.extensions.rgssproject.RGSSTabEvent

/**
*
*/
package de.yaams.extensions.rgssproject;

import java.util.HashMap;

import org.jruby.RubyHash;
import org.jruby.RubyObject;

import de.yaams.extensions.jruby.RubyHelper;
import de.yaams.extensions.rgssproject.database.RGSS1Helper;
import de.yaams.extensions.rgssproject.database.RGSS1Helper.Type;
import de.yaams.extensions.rgssproject.database.tabs.ActorTab;
import de.yaams.extensions.rgssproject.database.tabs.AnimationTab;
import de.yaams.extensions.rgssproject.database.tabs.ArmorTab;
import de.yaams.extensions.rgssproject.database.tabs.ClassTab;
import de.yaams.extensions.rgssproject.database.tabs.CommonEventTab;
import de.yaams.extensions.rgssproject.database.tabs.EnemyTab;
import de.yaams.extensions.rgssproject.database.tabs.ItemTab;
import de.yaams.extensions.rgssproject.database.tabs.MTab;
import de.yaams.extensions.rgssproject.database.tabs.SkillTab;
import de.yaams.extensions.rgssproject.database.tabs.StatusTab;
import de.yaams.extensions.rgssproject.database.tabs.TilesetTab;
import de.yaams.extensions.rgssproject.database.tabs.TroopTab;
import de.yaams.extensions.rgssproject.database.tabs.WeaponTab;
import de.yaams.extensions.rgssproject.map.MapEditorTab;
import de.yaams.extensions.rgssproject.map.event.EventTab;
import de.yaams.extensions.rgssproject.map.event.EventsEditorTab;
import de.yaams.extensions.rgssproject.script.ScriptTab;
import de.yaams.extensions.rgssproject.tab.RGSSRessourceTab;
import de.yaams.maker.programm.project.Project;
import de.yaams.maker.programm.tabs.TabEvent;
import de.yaams.maker.programm.tabs.YaTab;

/**
* @author abby
*
*/
public class RGSSTabEvent extends TabEvent {

  /*
   * (non-Javadoc)
   *
   * @see de.yaams.maker.programm.tabs.TabEvent#getTab(java.lang.String,
   * de.yaams.maker.programm.project.Project, java.util.HashMap,
   * java.util.HashMap)
   */
  @Override
  public YaTab getTab(String id, Project p, HashMap<String, String> parameters, HashMap<String, String> arguments) {

    // check tabs
    if (ScriptTab.ID.equals(id)) {
      return new ScriptTab(p);
    }

    // register tabs
    if (RGSS1Helper.getTabID(Type.ACTOR).equals(id)) {
      return new ActorTab(p);
    }
    if (RGSS1Helper.getTabID(Type.ANIMATION).equals(id)) {
      return new AnimationTab(p);
    }
    if (RGSS1Helper.getTabID(Type.ARMOR).equals(id)) {
      return new ArmorTab(p);
    }
    if (RGSS1Helper.getTabID(Type.CLASS).equals(id)) {
      return new ClassTab(p);
    }
    if (RGSS1Helper.getTabID(Type.ENEMY).equals(id)) {
      return new EnemyTab(p);
    }
    if (RGSS1Helper.getTabID(Type.ITEM).equals(id)) {
      return new ItemTab(p);
    }
    if (RGSS1Helper.getTabID(Type.SKILL).equals(id)) {
      return new SkillTab(p);
    }
    if (RGSS1Helper.getTabID(Type.STATUS).equals(id)) {
      return new StatusTab(p);
    }
    if (RGSS1Helper.getTabID(Type.TROOP).equals(id)) {
      return new TroopTab(p);
    }
    if (RGSS1Helper.getTabID(Type.WEAPON).equals(id)) {
      return new WeaponTab(p);
    }
    if (RGSS1Helper.getTabID(Type.MAP).equals(id)) {
      return new MTab(p);
    }
    if (RGSS1Helper.getTabID(Type.COMMONEVENT).equals(id)) {
      return new CommonEventTab(p);
    }
    if (RGSS1Helper.getTabID(Type.TILESET).equals(id)) {
      return new TilesetTab(p);
    }

    // ress
    if (RGSSRessourceTab.ID.equals(id)) {
      return new RGSSRessourceTab(p);
    }

    // check for map
    if ((MapEditorTab.ID.equals(id) || EventsEditorTab.ID.equals(id) || EventTab.ID.equals(id)) && parameters.containsKey("map")) {
      RubyObject map = RGSS1Helper.get(p, Type.MAP).get(Integer.valueOf(parameters.get("map"))).getObject();

      // add tab
      if (EventsEditorTab.ID.equals(id)) {
        return new EventsEditorTab(p, map);
      }
      if (EventTab.ID.equals(id)) {
        // search for event
        RubyHash events = (RubyHash) map.getInstanceVariable("@events");
        int eid = Integer.valueOf(parameters.get("event"));

        for (Object key : events.keySet()) {
          // load event
          RubyObject event = (RubyObject) events.get(key);
          // right id?
          if (RubyHelper.toInt(event.getInstanceVariable("@id")) == eid) {
            return new EventTab(p, map, event);
          }
        }

      }

      if (MapEditorTab.ID.equals(id)) {
        return new MapEditorTab(p, map);
      }
    }

    return null;
  }
}
TOP

Related Classes of de.yaams.extensions.rgssproject.RGSSTabEvent

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.